/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package myftp.app.action;

import myftp.app.form.ConnectForm;
import myftp.app.model.ConnexionInfoModel;
import myftp.app.view.dialog.TemplateDialog;
import myftp.core.action.AbstractAction;

/**
 *
 * @author CAVARLE Glenn, LUCAS Stéphane
 * Sauvegarde un serveur
 */
public class SaveServerAction extends AbstractAction {

    public synchronized void run() {
        /* Récupération des informations de connexion */
        ConnexionInfoModel info = (ConnexionInfoModel) this.getParam("info");
        /* Sauvegarde des informations dans le fichier */
        info.save("./config.dat");
    }

    public boolean init() {

        /* Récupération des informations de la barre de connexion */
        ConnectForm form = (ConnectForm) this.getParam("form");
        /* Mise en forme du résultat */
        ConnexionInfoModel info = new ConnexionInfoModel(form.toMap());

        /* Demande de confirmation de sauvegarde */
        Integer response = TemplateDialog.showSaveDialog(info.getHostName());

        /* Si la réponse est négative, le thread se termine */
        if (response == TemplateDialog.NO_OPTION) {
            return false;
        }

        /* Si la réponse est positive mais que les champs sont invalide
        le thread se termine également */
        if (!form.isValid()) {
            return false;
        }

        /* Si tout est correcte, les informations de connexinos sont placés
        en paramètre du thread */
        this.setParam("info", info);
        /* Validation de l'initialisation */
        return true;
    }
}
